#ifndef SQ_LINKLIST_  								//这句是用于防止多次引用头文件导致问题
#define SQ_LINKLIST_  								//这句是用于防止多次引用头文件导致问题
#include <stdio.h>
#include <stdbool.h>

#define MAXSIZE 20

typedef int ElemType;
typedef struct Node
{
	ElemType data;
	struct Node *next;	
} Node;
typedef struct Node *LinkList;						//定义LinkList

void InitList(LinkList *L); 						// 初始化操作,建立一个空的线性表L

bool ListEmpty(LinkList L); 						//若线性表为空, 返回true, 否则返回false. 如果变量定义为L *l, 则调用该方法为ListEmpty(*l);

void ClearList(LinkList *L); 						//将线性表清空., 如果变量定义为L *l, 则调用该方法为ClearList(l);

void GetElem(LinkList L,int i,ElemType *e); 		//将线性表L中的第i个位置元素值返回给e,从坐标0开始.

int LocateElem(LinkList L,ElemType e); 				//在线性表L中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功; 否则,返回-1表示失败.

void ListInsert(LinkList *L,int i,ElemType e); 		//在线性表L中的第i个位置插入新元素e,从坐标0开始.

void ListDelete(LinkList *L,int i,ElemType *e); 	//删除线性表L中第i个位置元素,并用e返回其值,从坐标0开始.

int ListLength(LinkList L); 						//返回线性表L的元素个数

void ReleaseMemory(LinkList *L);					//释放内存


#endif  /*SQ_LINKLIST_*/  							//这句是用于防止多次引用头文件导致问题